package com.codedancer.campus.client.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.client.service.bo.lostFoundItem.LostFoundItemAddOrUpdateBo;
import com.codedancer.campus.client.service.bo.lostFoundItem.LostFoundItemPageSearchBo;
import com.codedancer.campus.client.service.vo.lostFoundItem.LostFoundItemVo;

public interface ILostFoundItemService {

    /**
     * 发布物品
     * @param lostFoundItemAddOrUpdateBo
     */
    void publish(LostFoundItemAddOrUpdateBo lostFoundItemAddOrUpdateBo);

    /**
     * 分页查询物品
     * @param lostFoundItemPageSearchBo
     * @return
     */
    IPage<LostFoundItemVo> page(LostFoundItemPageSearchBo lostFoundItemPageSearchBo);

    /**
     * 详情
     * @param uuid
     * @return
     */
    LostFoundItemVo detail(String uuid);

    /**
     * 分页查询用户物品
     * @param lostFoundItemPageSearchBo
     * @return
     */
    IPage<LostFoundItemVo> page2User(LostFoundItemPageSearchBo lostFoundItemPageSearchBo);

    /**
     * 删除
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 确认认领
     * @param uuid
     */
    void confirmClaim(String uuid);

    /**
     * 确认找到
     * @param uuid
     */
    void confirmFind(String uuid);

    /**
     * 重新发布
     * @param uuid
     */
    void reissue(String uuid);

    /**
     * 修改物品
     * @param lostFoundItemAddOrUpdateBo
     */
    void edit(LostFoundItemAddOrUpdateBo lostFoundItemAddOrUpdateBo);

    /**
     * 同步自由广场
     * @param uuid
     */
    void syncLibertySquare(String uuid);

    /**
     * 取消同步自由广场
     * @param uuid
     */
    void cancelSyncLibertySquare(String uuid);

    /**
     * 撤回
     * @param uuid
     */
    void revoke(String uuid);
}
